
package com.hlkj.pay.vo.devices.req;

import java.math.BigDecimal;
import java.util.List;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

import com.hlkj.framework.common.valid.EnumValid;
import com.hlkj.pay.enums.CommonEnum;
import com.hlkj.pay.vo.BaseReq;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

/**
 * 商户码牌设置
 * 
 * @TableName t_merchant_qr_set
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class MerchantQrSetReq extends BaseReq {

    /**
     * 批次号
     */
    @Schema(description = "批次号")
    @NotEmpty(message = "批次号 不能为空")
    private String batchNo;

    /**
     * 状态 0 停用 1 启用
     */
    @Schema(description = "状态 0 停用 1 启用")
    @NotNull(message = "状态 不能为空")
    @EnumValid(value = CommonEnum.YES_NO_TYPE.class, message = "状态 无效")
    private Integer status;

    /**
     * 模板id
     */
    @Schema(description = "模板id")
    @NotNull(message = "模板id 不能为空")
    private Long templateId;

    /**
     * 数量
     */
    @Schema(description = "数量")
    @NotNull(message = "数量 不能为空")
    private Integer num;

    /**
     * 金额限制 0 任意金额 1 固定金额
     */
    @Schema(description = "金额限制 0 任意金额 1 固定金额")
    @NotNull(message = "金额限制 不能为空")
    @EnumValid(value = CommonEnum.YES_NO_TYPE.class, message = "金额限制 无效")
    private Integer amountLimit;

    /**
     * 金额
     */
    @Schema(description = "金额")
    private BigDecimal amount;

    /**
     * 扫码后页面类型 0 默认 1 固定H5页面 2 固定小程序页面
     */
    @Schema(description = "扫码后页面类型 0 默认 1 固定H5页面 2 固定小程序页面")
    @NotNull(message = "扫码后页面类型 不能为空")
    private Integer pageType;

    /**
     * 二维码地址前缀
     */
    @Schema(description = "二维码地址前缀")
    private String pageUrl;

    /**
     * 支付子类 Native- 扫码支付； JSAPI-微信JSAPI、支付宝JSAPI支付、银联JSAPI支付
     * MINI_APP-微信小程序支付、支付宝小程序支付
     */
    @Schema(description = "支付子类 Native- 扫码支付； JSAPI-微信JSAPI、支付宝JSAPI支付、银联JSAPI支付 MINI_APP-微信小程序支付、支付宝小程序支付 ")
    private String subType;

    @Schema(description = "码牌列表")
    @Size(min = 1, message = "码牌列表不能为空")
    private List<MerchantQrListReq> merchantQrListReqs;

}
